home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Programmer Disk
/
The Programmer Disk (Microforum).iso
/
xpro
/
qb2
/
pro15
/
wormy.pas
< prev
Wrap
Pascal/Delphi Source File
|
1990-08-20
|
2KB
|
121 lines
{
******************************************************************************
* WORMY - Circle drawing demo. *
* *
* Written for GRAFIX by: Joseph A. Albrecht *
* *
* Press F10 to toggle between 320 and 640 graphic modes *
* Press ESC to exit program *
******************************************************************************
}
PROGRAM Wormy;
USES
Crt,
Dos,
Grafix;
VAR
Graphics, X, Y, C, Radius: INTEGER;
H, M, S, S100: WORD;
XR, YR, CR: REAL;
Loop, Tandy11: BOOLEAN;
PROCEDURE CheckKey;
VAR
Ch: CHAR;
BEGIN
Ch := #255;
IF KeyPressed THEN
Ch := ReadKey;
IF Ch = #27 THEN
BEGIN
ExitGraphics;
Halt(0);
END;
IF Ch = #00 THEN
BEGIN
Ch := ReadKey;
IF (Ch = #68) AND (Tandy11 = True) THEN
BEGIN
IF Graphics = 320 THEN
BEGIN
Graphics := 640;
Loop := False;
HighGraphics;
END
ELSE
BEGIN
Graphics := 320;
Loop := False;
MediumGraphics;
END;
END;
END;
END;
{Mainline}
BEGIN
Graphics := 320;
Loop := True;
GetTandy11(Tandy11);
MediumGraphics;
While True DO
BEGIN
ClearScreen;
IF Graphics = 320 THEN
SetCursor(1, 18)
ELSE
SetCursor(1, 38);
PrintString('WORMY');
CR := 0;
XR := 0.1;
WHILE (XR <= 1.1) AND (Loop = True) DO
BEGIN
CR := CR + 0.1;
IF Graphics = 320 THEN
BEGIN
X := Round(XR * 200);
Y := Round(Sin(XR * 24) * (XR * 50) + 100);
Radius := Round(XR * 40);
C := Round(CR);
ExtCircleC(X, Y, Radius, C);
END
ELSE
BEGIN
X := Round(XR * 400);
Y := Round(Sin(XR * 24) * (XR * 50) + 100);
Radius := Round(XR * 75);
C := Round(CR);
ExtCircleC(X, Y, Radius, C);
END;
IF CR > 15 THEN
CR := 0;
XR := XR + 0.002;
CheckKey;
END;
IF XR >= 1.1 THEN
BEGIN
GetTime(H, M, S, S100);
X := S;
Y := 1;
REPEAT
GetTime(H, M, S, S100);
IF X <> S THEN
BEGIN
Inc(Y);
X := S;
END;
UNTIL (Y = 7) OR (KeyPressed);
END;
Loop := True;
END;
END.